import logging
from logging.handlers import RotatingFileHandler
import os

# 日志文件目录
LOG_DIR = "logs"
os.makedirs(LOG_DIR, exist_ok=True)  # 创建日志目录（如果不存在）

# 日志文件路径
LOG_FILE = os.path.join(LOG_DIR, "app.log")


# 日志配置函数
def configure_logger():
    # 创建日志器
    logger = logging.getLogger()
    logger.setLevel(logging.DEBUG)  # 设置最低日志级别

    # 创建文件处理器，日志按大小轮转
    file_handler = RotatingFileHandler(
        LOG_FILE, maxBytes=5 * 1024 * 1024, backupCount=3, encoding="utf-8"
    )
    file_handler.setLevel(logging.DEBUG)

    # 创建控制台处理器
    console_handler = logging.StreamHandler()
    console_handler.setLevel(logging.INFO)

    # 定义日志格式
    formatter = logging.Formatter(
        "%(asctime)s - %(levelname)s - %(name)s - %(message)s",
        datefmt="%Y-%m-%d %H:%M:%S",
    )
    file_handler.setFormatter(formatter)
    console_handler.setFormatter(formatter)

    # 添加处理器到日志器
    logger.addHandler(file_handler)
    logger.addHandler(console_handler)

    return logger


# 全局配置调用，确保日志在启动时配置
LOGGER = configure_logger()
